package sensitive;

import java.io.*;
import java.util.HashSet;
import java.util.Set;

public class Test {
    public static void main(String[] args) throws IOException {
        //手动设置关键词
        SensitiveUtil.initKeyWord(new HashSet<String>() {{
            add("做爱");
            add("草泥马");
        }});
        System.out.println("敏感词的数量：" + SensitiveUtil.getSensitiveWordCount());
        String str1 = "做爱虽国；架加阿斯蒂芬草泥马里看见了会计暗示的浪费空间加地";
        long beginTime = System.currentTimeMillis();
        Set<String> set = SensitiveUtil.getSensitiveWord(str1, 1);
        long endTime = System.currentTimeMillis();
        System.out.println("语句中包含敏感词的个数为：" + set.size() + "。包含：" + set);
        System.out.println("总共消耗时间为：" + (endTime - beginTime));
        System.out.println("是否包含敏感词" + SensitiveUtil.isContaintSensitiveWord(str1, 1));
        System.out.println("替换敏感词");
        System.out.println("替换前:" + str1);
        System.out.println("替换后:" + SensitiveUtil.replaceSensitiveWord(str1, 1, "*"));

        //从文件加载关键词
        Set<String> set1 = null;
        String url = Test.class.getResource("/key.txt").getFile();
        File file = new File(url);    //读取文件
        InputStreamReader read = new InputStreamReader(new FileInputStream(file), "UTF-8");

        if (file.isFile() && file.exists()) { //文件流是否存在
            set = new HashSet<String>();
            BufferedReader bufferedReader = new BufferedReader(read);
            String txt;
            while ((txt = bufferedReader.readLine()) != null) {    //读取文件，将文件内容放入到set中
                set.add(txt);
            }
            SensitiveUtil.initKeyWord(set);
        } else {
            System.out.println("敏感词库文件不存在");
        }

        String str2 = "太多的伤感情怀也许只局限于饲养基地 荧幕中的情节，主人公尝试着去用某种方式渐渐的很潇洒地释自杀指南怀那些自己经历的伤感。"
                + "然后法轮功 我们的扮演的角色就是跟随着主人公的喜红客联盟 怒哀乐而过于牵强的把自己的情感也附加于银幕情节中，然后感动就流泪，"
                + "难过就躺在某一个人的怀里尽情的阐述心扉或者手机卡复制器一个人一杯红酒一部电影在夜三级片 深人静的晚上，关上电话静静的发呆着。";
        beginTime = System.currentTimeMillis();
        Set<String> set2 = SensitiveUtil.getSensitiveWord(str2, 1);
        endTime = System.currentTimeMillis();
        System.out.println("语句中包含敏感词的个数为：" + set2.size() + "。包含：" + set2);
        System.out.println("总共消耗时间为：" + (endTime - beginTime));
    }
}
